﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ABC_SA_DM;
using ABC_SA_DAL;
using ABC_SA_BL;

 /*
 * 0 - transporte
 * 1 - hospedaje
 * 2 - alimentacion
 * 3 - actividades
 * 4 - entradas
 */

namespace ABC_SA_BL
{
    public class Servicios_BL 
    {
        //crea un servicio para insertarlo en la base de datos
        public bool crearServicio(string nombre, int categoria, double monto) {
            Servicio serv = new Servicio();
            serv.Nombre = nombre;
            serv.Categoria = categoria;
            serv.Monto = monto;

            Servicios_DAL servDal = new Servicios_DAL();

            return servDal.Crear(serv);
        }

        //retorna la lista consultada en la base de datos
        public List<Servicio> ConsultarServicios(){
            Servicios_DAL servDal = new Servicios_DAL();

            return servDal.ConsultaServicios();
        }

        //modifica un servicio en la base de datos
        public bool modificarServicio(Int32 idServ, string nombre, Int32 categoria, double monto) {
            Servicios_DAL servDal = new Servicios_DAL();
            Servicio serv = new Servicio();
            serv.IdServicio = idServ;
            serv.Nombre = nombre;
            serv.Categoria = categoria;
            serv.Monto = monto;
            
            return servDal.ModificarServicio(serv);
        }

        // Se consulta el paquete que se desea modificar
        public Servicio mostrarUnServicio(int idServicio)
        {            
            Servicios_DAL Servicio_DAL = new Servicios_DAL();
            Servicio servicioConsultado = Servicio_DAL.consultaIdServicio(idServicio);

            return servicioConsultado;
        }

        public bool EliminarServicios(Int32 id) {
            Servicios_DAL servicios = new Servicios_DAL();

            servicios.eliminarPaqueteServicio(id);
            servicios.eliminarExtraServicio(id);
            servicios.eliminarProvedorServicio(id);

            bool cont = servicios.eliminarServicio(id);

            return cont;
        }

        public bool relProveedorServicio(int idProveedor, List<String> servicios) {
            Servicios_DAL servicio = new Servicios_DAL();
            return servicio.relProveedorServicio(idProveedor, servicios);
        }

        public List<ProveedorServicio> consultarProvedorServicio() {
            Servicios_DAL servicio = new Servicios_DAL();
            return servicio.consultarProveedorServicio();
        }

        public List<Servicio> consProvServ(int idProveedor) {
            List<ProveedorServicio> listaPS = consultarProvedorServicio();
            Servicios_DAL servicio = new Servicios_DAL();
            return servicio.consProvServ(listaPS, idProveedor);
        }
    }
}
